-define(ADMIN, <<"admin">>).


%% =====================================================================
%% @doc
%% 用户工作分派
%% id:        唯一标识
%% organ:     组织机构
%% subject:   分配项，格式如 {position, [{....}]}
%% assign:    分配到的人员清单
%% @end
%% =====================================================================
-record(job, {
          id,
          organ,
          subject,
          assign = []
         }).






%% =====================================================================
%% @doc
%% 应用权限的定义
%% appid:     应用的ID
%% allow:     允许的用户
%% deny:      禁止的用户
%% default:   默认的权限
%% @end
%% =====================================================================
-record(acl, {
          appid,
          allow = [],
          deny = [],
          default = allow
         }).



%% =====================================================================
%% @doc
%% 系统配置的定义
%% key:       参数名称
%% descr:     参数描述
%% value:     参数值，可以是任意值
%% @end
%% =====================================================================
-record(config, {
          key,
          descr,
          value,
          mustbe = <<"false">>
         }).



%% =====================================================================
%% @doc
%% 应用商店的记录定义
%% appid:     应用编号
%% name:      应用名称
%% descr:     应用描述
%% callback:  回调参数，是一个标准 Map，格式如下：#{url => <<"...">>, method => rest}
%% icon:      图标文件的BASE64格式内容
%% settings:  配置参数集，符合JSON标准的元组列表
%% state:     在用(avail)，挂起(hangup)
%% @end
%% =====================================================================
-record(app, {
          appid,
          name,
          descr = <<>>,
          author,
          release,
          released_at,
          callback = #{},
          icon = <<>>,
          settings = [],
          state = avail
         }).


%% =====================================================================
%% @doc
%% 应用服务注册
%% appid:     应用编号
%% type:      服务类型，默认为 restful
%% url:       服务地址
%% @end
%% =====================================================================
-record(uddi, {
         appid,
         type = restful,
         url
}).


%% =====================================================================
%% @doc
%% 系统应用配置的定义
%% app:        系统应用
%% config:     系统配置，目前为 map，格式任意
%% @end
%% =====================================================================
-record(app_config, {app, config}).



%% =====================================================================
%% @doc 系统操作日志
%% =====================================================================

-record(action_log, {
          app = <<"admin">>   :: binary(),
          who = <<"system">>  :: binary(),
          time                :: tuple(),
          action              :: binary(),
          data                :: any()
         }).

-record(action_counter, {
          app = <<"admin">>   :: binary(),
          who = <<"system">>  :: binary(),
          time                :: tuple()
         }).
        
